home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-06-26 | 11.5 KB | 448 lines | [TEXT/MPS ] |
- CONST {private}
- kFileType = '????'; {File Type}
- kSignature = 'Samx'; {Creator name}
- kSquareDots = TRUE; {for ImageWriter printer}
- kFixedSize = TRUE;
- kWindRsrcID = 1001;
-
- kPrinterStringID = 1001; {string resource ID}
- kMacStringID = 1002; {string resource ID}
- kFontStringId = 1003;
-
- cMac = 2001; {menu command number}
- cPrinter = 2002; {menu command number}
-
- VAR {private}
- hPos,vPos,Leading:Integer; {Used in Draw proc}
-
- {============================================================================}
- {$S AInit}
- PROCEDURE TSampleApplication.ISampleApplication;
-
- BEGIN
- SELF.IApplication(kFileType);
- END;
-
- {------------------------------------------------------------------------}
- {$S AOpen}
- FUNCTION TSampleApplication.DoMakeDocument(
- itsCmdNumber: CmdNumber):TDocument; OVERRIDE;
-
- VAR
- aSampleDocument: TSampleDocument;
-
- BEGIN
- NEW(aSampleDocument); {create document object}
- FailNil(aSampleDocument); {make sure there was enough memory}
- aSampleDocument.ISampleDocument; {initialize the document object}
- DoMakeDocument := aSampleDocument; {function result is the document}
- END;
-
- {============================================================================}
- {$S AOpen}
- PROCEDURE TSampleDocument.ISampleDocument;
-
- BEGIN
- SELF.IDocument(kFileType, kSignature, kUsesDataFork,
- NOT kUsesRsrcFork, NOT kDataOpen, NOT kRsrcOpen);
- SELF.fSavePrintInfo := TRUE; {print record saved in disk file}
- SELF.fDeviceCmd:= cMac;
- END;
-
- {------------------------------------------------------------------------}
- {$S AOpen}
- PROCEDURE TSampleDocument.DoMakeViews(forPrinting: BOOLEAN); OVERRIDE;
-
- VAR
- aSampleView: TSampleView;
- aStdHandler: TStdPrintHandler;
-
- BEGIN
- NEW(aSampleView); {create a view object}
- FailNil(aSampleView); {make sure there is enough memory}
- aSampleView.ISampleView(SELF); {pass the document that created this view}
- SELF.fSampleView := aSampleView; {most documents keep a reference to their views}
-
- New(aStdHandler); {create a print handler}
- FailNIL(aStdHandler); {make sure there is enough memory}
- aStdHandler.IStdPrintHandler(SELF, aSampleView, NOT kSquareDots,
- kFixedSize, kFixedSize); {vertical, horizontal}
- END;
-
- {------------------------------------------------------------------------}
- {$S AOpen}
- PROCEDURE TSampleDocument.DoMakeWindows; OVERRIDE;
-
- VAR
- aWindow: TWindow;
-
- BEGIN
- aWindow := NewSimpleWindow(kWindRsrcID, kWantHScrollBar, kWantVScrollBar,
- SELF, {document}
- SELF.fSampleView); {view}
- aWindow.SimpleStagger(kStdStaggerAmount, kStdStaggerAmount, gStdStaggerCount);
- END;
-
- {------------------------------------------------------------------------------}
- {$S ARes}
- PROCEDURE TSampleDocument.DoSetupMenus; OVERRIDE;
- VAR
- SampleIndex: Integer;
- SampleCmd: Integer;
- BEGIN
- INHERITED DoSetupMenus; {always do this, so other objects get chance}
- Enable(cMac, TRUE);
- Enable(cPrinter, TRUE); {enable this menu item}
- SampleCmd:=SELF.GetCmd;
- FOR SampleIndex:=cMac TO cPrinter DO
- EnableCheck(SampleIndex, TRUE, (SampleIndex = SampleCmd));
- END;
-
- {------------------------------------------------------------------------------}
- {$S ARes}
- FUNCTION TSampleDocument.DoMenuCommand(aCmdNumber: CmdNumber):TCommand;OVERRIDE;
-
- BEGIN
- DoMenuCommand := gNoChanges; {do this if commands not Undoable}
- CASE aCmdNumber OF
-
- cMac:
- BEGIN
- SELF.SetCmd(cMac);
- SELF.fSampleView.ForceRedraw; {force update event for view}
- END;
-
- cPrinter:
- BEGIN
- SELF.SetCmd(cPrinter);
- SELF.fSampleView.ForceRedraw; {force update event for view}
- END;
-
- OTHERWISE {always, so other objects get a chance}
- DoMenuCommand := INHERITED DoMenuCommand(aCmdNumber);
-
- END; {Case}
- END;
-
- {------------------------------------------------------------------------}
- {$S ARes}
- PROCEDURE TSampleDocument.SetCmd(CmdID: INTEGER);
-
- BEGIN
- SELF.fDeviceCmd := CmdID; {save string in document variable}
- END;
-
- {------------------------------------------------------------------------}
- {$S ARes}
- FUNCTION TSampleDocument.GetCmd: Integer;
- BEGIN
- GetCmd := SELF.fDeviceCmd; {return internal vaiable as function result}
- END;
-
- {============================================================================}
- {$S AOpen}
- PROCEDURE TSampleView.ISampleView(itsDocument: TSampleDocument);
-
- VAR
- itsSize: VPoint;
-
- BEGIN
- SetVPt(itsSize, 300, 300); {width, height: 32-bit numbers}
- SELF.IView( itsDocument, {document that created the view}
- NIL, {superview}
- gZeroVPt, {topLeft; here = 0,0 as a VPoint}
- itsSize, {width, height as a VPoint}
- sizeFixed, {width}
- sizeFixed); {height}
- SELF.fSampleDocument := itsDocument; {save address of document in view}
- END;
-
- {------------------------------------------------------------------------}
- {$S ARes}
- PROCEDURE TSampleView.Draw(area: Rect); OVERRIDE;
-
- {---------------------------------------}
- PROCEDURE MyDrawString(OutputStr:Str255);
- Begin
- DrawString(OutputStr);
- vPos:=vPos+Leading;
- MoveTo(hPos,vPos);
-
- End;
-
- {---------------------------------------}
-
- PROCEDURE DrawMac;
- CONST
- envMacIIcx = 6;
- envSE30 = 7;{ Not in the MPW 3.0 interfaces }
-
- VAR
- MyConfigRecord: ConfigRecord; {from MAUtil.p}
- Item: Integer;
- bItem: Boolean;
- Str: Str255;
- aString: Str255;
- aStringHdl: StringHandle;
- BEGIN
- aStringHdl := GetString(kMacStringID); {get string from resource file}
- FailNILResource(aStringHdl); {make sure there is no problem}
- Str:=aStringHdl^^;
- MyDrawString(Str);
-
- DefineConfiguration(MyConfigRecord); {from MAUtil.p}
-
- Item:= MyConfigRecord.environsVersion;
- NumToString(Item, Str);
- Str:= Concat( ' environsVersion = ', Str );
- MyDrawString(Str);
-
- CASE MyConfigRecord.machineType OF
- envMac:
- aString := 'Mac';
- envXL:
- aString := 'XL';
- envMachUnknown:
- aString := 'MachUnknown';
- env512KE:
- aString := '512KE';
- envMacPlus:
- aString := 'MacPlus';
- envSE:
- aString := 'SE';
- envMacII:
- aString := 'MacII';
- envMacIIx:
- aString := 'MacIIx';
- envMacIIcx:
- aString := 'MacIIcx';
- envSE30:
- aString := 'SE30';
- OTHERWISE
- aString := 'MachUnknown';
- END;
-
- Str:= Concat(' Machine Type = ' , aString);
- MyDrawString(Str);
-
- Item:= MyConfigRecord.systemVersion;
- NumToString(Item, Str);
- Str:= Concat(' systemVersion = ' , Str);
- MyDrawString(Str);
-
- CASE MyConfigRecord.processor OF
- envCPUUnknown:
- aString := 'CPUUnknown';
- env68000:
- aString := '68000';
- env68010:
- aString := '68010';
- env68020:
- aString := '68020';
- env68030:
- aString := '68030';
- OTHERWISE
- aString := 'CPUUnknown';
- END;
-
- Str:= Concat(' CPU Version = ' , aString);
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasFPU;
- IF bItem THEN Str:= ' has FPU = TRUE'
- ELSE Str:= ' has FPU = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasColorQD;
- IF bItem THEN Str:= ' has Color QD = TRUE'
- ELSE Str:= ' has Color QD = FALSE';
- MyDrawString(Str);
-
- CASE MyConfigRecord.keyboardType OF
- envUnknownKbd:
- aString := 'UnknownKbd';
- envMacKbd:
- aString := 'MacKbd';
- envMacAndPad:
- aString := 'MacAndPad';
- envMacPlusKbd:
- aString := 'MacPlusKbd';
- envAExtendKbd:
- aString := 'AExtendKbd';
- envStandADBKbd:
- aString := 'StandADBKbd';
- OTHERWISE
- aString := 'UnknownKbd';
- END;
-
- Str:= Concat(' Keyboard Type = ' , aString);
- MyDrawString(Str);
-
- Item:= MyConfigRecord.atDrvrVersNum;
- NumToString(Item, Str);
- Str:= Concat(' Driver Version = ' , Str);
- MyDrawString(Str);
-
- Item:= MyConfigRecord.sysVRefNum;
- NumToString(Item, Str);
- Str:= Concat(' System Ref Number = ' , Str);
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasROM128K;
- IF bItem THEN Str:= ' has 128K ROM = TRUE'
- ELSE Str:= ' has 128K ROM = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasHFS;
- IF bItem THEN Str:= ' has HFS = TRUE'
- ELSE Str:= ' has HFS = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasHierarchicalMenus;
- IF bItem THEN Str:= ' has Hierarchical Menus = TRUE'
- ELSE Str:= ' has Hierarchical Menus = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasScriptManager;
- IF bItem THEN Str:= ' has Script Manager = TRUE'
- ELSE Str:= ' has Script Manager = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasStyleTextEdit;
- IF bItem THEN Str:= ' has StyleText Edit = TRUE'
- ELSE Str:= ' has StyleTextEdit = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasSoundManager;
- IF bItem THEN Str:= ' has Sound Manager = TRUE'
- ELSE Str:= ' has Sound Manager = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasWaitNextEvent;
- IF bItem THEN Str:= ' has WaitNextEvent = TRUE'
- ELSE Str:= ' has WaitNextEvent = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasSCSI;
- IF bItem THEN Str:= ' has SCSI = TRUE'
- ELSE Str:= ' has SCSI = FALSE';
- MyDrawString(Str);
-
- bItem:= MyConfigRecord.hasDesktopBus;
- IF bItem THEN Str:= ' has Desktop Bus = TRUE'
- ELSE Str:= ' has Desktop Bus = FALSE';
- MyDrawString(Str);
-
- END;
-
- {---------------------------------------}
-
- PROCEDURE DrawPrinter;
- TYPE
- PrGeneralPtr = ^TGetRslBlk;
- CONST
- GetRslData = 4;
- VAR
- aStringHdl: StringHandle;
- Str: Str255;
- Item: LongInt;
- pDialog: PrGeneralPtr;
- i,NumberOfRecords: Integer;
- BEGIN
- aStringHdl := GetString(kPrinterStringID); {get string from resource file}
- FailNILResource(aStringHdl); {make sure there is no problem}
- Str:=aStringHdl^^;
- MyDrawString(Str);
- pDialog:= PrGeneralPtr(NewPtr(SIZEOF(TGetRslBlk)));
- PrOpen;
- IF PrError = noErr then
- BEGIN
- pDialog^.iOpCode:= GetRslData;
- PrGeneral(Ptr(pDialog));
- IF PrError = noErr then
- BEGIN
- NumberOfRecords:= pDialog^.iRslRecCnt;
- FOR i:= 1 to NumberOfRecords DO
- BEGIN
- Item := pDialog^.rgRslRec[1].iXRsl;
- NumToString(Item, Str);
- Str:= Concat(' X Resolution = ' , Str);
- MyDrawString(Str);
- Item := pDialog^.rgRslRec[1].iYRsl;
- NumToString(Item, Str);
- Str:= Concat(' Y Resolution = ' , Str);
- MyDrawString(Str);
- END;
- END
- ELSE
- BEGIN
- Item:= LongInt(PrError);
- NumToString(Item, Str);
- Str:= Concat(' PrGeneral Error = ' , Str);
- MyDrawString(Str);
- END
- END
- ELSE
- BEGIN
- Item:= LongInt(PrError);
- NumToString(Item, Str);
- Str:= Concat(' PrOpen Error = ' , Str);
- MyDrawString(Str);
- END;
- PrClose;
- IF PrError = noErr then
- BEGIN
- END
- ELSE
- BEGIN
- Item:= LongInt(PrError);
- NumToString(Item, Str);
- Str:= Concat(' PrClose Error = ' , Str);
- MyDrawString(Str);
- END;
- END;
- {-------------------------------------}
-
- VAR
- itsQDExtent: Rect;
- FontStr: Str255;
- FontNumber: Integer;
- aStringHdl: StringHandle;
- Mode: Integer;
-
- BEGIN
- PenNormal; {in case someone else changed it}
- PenSize(1, 1);
- PenPat(black);
-
- SELF.GetQDExtent(itsQDExtent); {get size of this view}
- InsetRect(itsQDExtent,2,2);
- FrameRect(itsQDExtent); {draw an enclosing rectangle}
-
- aStringHdl := GetString(kFontStringID); {get string from resource file}
- FailNILResource(aStringHdl); {make sure there is no problem}
- FontStr := aStringHdl^^; {save string in variable}
- GetFNum(FontStr,FontNumber);
-
- TextMode(srcOr);
- TextFont(FontNumber);
- TextFace([]);
- hPos:=10;
- vPos:=32;
- MoveTo(hPos, vPos);
- TextSize(12);
- Leading:=14;
-
- Mode:=SELF.fSampleDocument.GetCmd;
- CASE Mode OF
- cMac:
- DrawMac;
- cPrinter:
- DrawPrinter;
- OTHERWISE;
- END;
-
- PenNormal;
- END;
-
-